In many applications it is desirable to add computer generated graphics to enhance conventionally captured video images. For example, news broadcasts and televised weather forecasts frequently include computer generated content such as text banners, maps, backdrops and so on, which are added to conventionally captured video images of a human presenter. Such computer generated content can improve the clarity with which information is presented to a viewer and can be easily and conveniently edited and updated. Similarly, many modern films include a great deal of computer generated content which is intermixed with real-life actors and objects to achieve effects which would be impossible or very expensive to achieve in real life.
In some situations, adding a computer graphic to real life video is quite straightforward. For example, adding a simple and static two dimensional graphic overlay on a video scene. However, adding a computer generated graphic into a video scene such that it appears to be realistically placed in three dimensional space can be much more difficult, particularly if the position of a camera capturing the real-life scene is changing. Furthermore, it can be difficult to render computer generated graphics so that they appear to be lit in the same manner as real-life objects in the scene. It is possible to achieve realistic looking results if the captured video is processed after being captured and frame by frame adjustments are made to ensure a realistic position and lighting of the computer generated object is maintained. However, this is time consuming and is not practical for applications which demand a computer generated object be realistically placed and lit in a video scene in real time.
Additionally, the inclusion of computer generated shadows in a combined display of computer generated content and conventionally captured video images can greatly enhance an appearance of realism for a user. However, it can be difficult to achieve realistic looking results if a virtual object is to cast a computer generated shadow on a real object. In particular, it can be difficult to render the computer generated shadow such that it appears to be cast on the real object if there are one or more virtual light sources in the scene or where a computer generated object is to be inserted into a scene such that it should cast shadows caused by the virtual object occluding a real light source.